#define _CRT_SECURE_NO_WARNINGS 1

//#include<stdio.h>
//#include<string.h>
//
//struct student {
//    char name[50];
//    int score;
//}stu[20];
//
//void fun(int n, struct student stu[]) {
//    for (int i = 0; i < n - 1; i++) {
//        for (int j = 0; j < n - 1 - i; j++) {
//            if (stu[j].score == stu[j + 1].score) {
//                int flag = strcmp(stu[j].name, stu[j + 1].name);
//                if (flag > 0) {
//                    int t = stu[j].score;
//                    stu[j].score = stu[j + 1].score;
//                    stu[j + 1].score = t;
//
//                    char temp[50];
//                    strcpy(temp, stu[j].name);
//                    strcpy(stu[j].name, stu[j + 1].name);
//                    strcpy(stu[j + 1].name, temp);
//                }
//            }
//            else if (stu[j].score < stu[j + 1].score) {
//                int t = stu[j].score;
//                stu[j].score = stu[j + 1].score;
//                stu[j + 1].score = t;
//
//                char temp[50];
//                strcpy(temp, stu[j].name);
//                strcpy(stu[j].name, stu[j + 1].name);
//                strcpy(stu[j + 1].name, temp);
//            }
//        }
//    }
//}
//
//int main() {
//    int n;
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++) {
//        scanf("%s %d", stu[i].name, &stu[i].score);
//    }
//    fun(n, stu);
//    for (int i = 0; i < n; i++) {
//        printf("%s %d\n", stu[i].name, stu[i].score);
//    }
//    return 0;
//}


#include<stdio.h>
#include<string.h>

struct student {
    char s[50];
    int y;
    int m;
    int d;
}stu[20];

void fun(int n, struct student stu[]) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (stu[j].y < stu[j + 1].y) {
                char temp[50];
                strcpy(temp, stu[j].s);
                strcpy(stu[j].s, stu[j + 1].s);
                strcpy(stu[j + 1].s, temp);
            }
            else if (stu[j].m < stu[j + 1].m) {
                char temp[50];
                strcpy(temp, stu[j].s);
                strcpy(stu[j].s, stu[j + 1].s);
                strcpy(stu[j + 1].s, temp);
            }
            else if (stu[j].d < stu[j + 1].d) {
                char temp[50];
                strcpy(temp, stu[j].s);
                strcpy(stu[j].s, stu[j + 1].s);
                strcpy(stu[j + 1].s, temp);
            }
            else 
            {
                char temp[50];
                strcpy(temp, stu[j].s);
                strcpy(stu[j].s, stu[j + 1].s);
                strcpy(stu[j + 1].s, temp);
            }
        }
    }
}


int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%s %d %d %d ", stu[i].s, &stu[i].y, &stu[i].m, &stu[i].d);
    }
    fun(n, stu);
    for (int i = 0; i < n; i++) {
        printf("%s\n", stu[i].s);
    }
    return 0;
}

